package br.edu.ufc.deti.broker.persistencia;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

import br.edu.ufc.deti.beans.Recurso;

public class PrsMonitoramento {

	private static PrsMonitoramento instance;
	
	public static synchronized PrsMonitoramento getInstance(){
		if( instance == null )
			instance = new PrsMonitoramento();
		return instance;
	}
	
	public int insereValoresRecursos( Statement stmt, List<Recurso> recursos ) {
		ResultSet rs = null;
		try {
			rs = stmt.executeQuery("select max(id) as id from valores_metricas");
			int max_id = rs.getInt("id")+1;
			for (Recurso recurso : recursos) {
				StringBuffer sql = new StringBuffer( "" );
				sql.append("INSERT INTO valores_metricas ( " );
				sql.append(		"id, host_recurso, valor_processador, valor_memoria, valor_vazao_interna, valor_vazao_externa, valor_nota ) " );
				sql.append(		"VALUES ( "+max_id+", '"+recurso.getHostRecurso()+"', "+recurso.getValorProcessador()+", " );
				sql.append(					recurso.getValorMemoria()+", "+recurso.getValorRedeInterna()+", ");
				sql.append(					recurso.getValorRedeExterna()+", "+recurso.getValorNota()+" )");
				System.out.println(sql.toString());
				boolean result = stmt.execute( sql.toString() );
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return 0;
	}
	
// Select que conta a quantidade de que cada recurso foi utilizado;
//
//	select count(host_recurso)
//	from valores_metricas
//	where valor_nota in (select max(valor_nota)
//		from valores_metricas
//		where  id = id
//		and 3 < id < 110
//		and id in (4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19)
//		group by id)
//	--and host_recurso = 'tp-x001.ci.uchicago.edu'
//	and host_recurso = 'powercost.rcost.unisannio.it'	




}
